package top.lidee.framework.constant;

import com.google.common.collect.Lists;

import java.util.List;

/**
 * @author 张一恒
 * @version 1.0
 * @description: 收付通、特约进件常量
 * @date 2024/9/30 17:51
 */
public class WechatConstant {

    /**
     * //申请状态
     * 枚举值：
     * CHECKING：资料校验中
     * ACCOUNT_NEED_VERIFY：待账户验证
     * AUDITING：审核中
     * REJECTED：已驳回
     * NEED_SIGN：待签约
     * FINISH：完成
     * FROZEN：已冻结
     * CANCELED：已作废
     * 示例值：FINISH
     */
    public static final String CHECKING = "CHECKING";
    public static final String ACCOUNT_NEED_VERIFY = "ACCOUNT_NEED_VERIFY";
    public static final String AUDITING = "AUDITING";
    public static final String REJECTED = "REJECTED";
    public static final String NEED_SIGN = "NEED_SIGN";
    public static final String FINISH = "FINISH";
    public static final String FROZEN = "FROZEN";
    public static final String CANCELED = "CANCELED";


    /**
     * 1、APPLYMENT_STATE_EDITTING（编辑中）：提交申请发生错误导致，请尝试重新提交。
     * 2、APPLYMENT_STATE_AUDITING（审核中）：申请单正在审核中，超级管理员用微信打开“签约链接”，完成绑定微信号后，申请单进度将通过微信公众号通知超级管理员，引导完成后续步骤。
     * 3、APPLYMENT_STATE_REJECTED（已驳回）：请按照驳回原因修改申请资料，超级管理员用微信打开“签约链接”，完成绑定微信号，后续申请单进度将通过微信公众号通知超级管理员。
     * 4、APPLYMENT_STATE_TO_BE_CONFIRMED（待账户验证）：请超级管理员使用微信打开返回的“签约链接”，根据页面指引完成账户验证。
     * 5、APPLYMENT_STATE_TO_BE_SIGNED（待签约）：请超级管理员使用微信打开返回的“签约链接”，根据页面指引完成签约。
     * 6、APPLYMENT_STATE_SIGNING（开通权限中）：系统开通相关权限中，请耐心等待。
     * 7、APPLYMENT_STATE_FINISHED（已完成）：商户入驻申请已完成。
     * 8、APPLYMENT_STATE_CANCELED（已作废）：申请单已被撤销。
     */
    public static final String APPLYMENT_STATE_EDITTING = "APPLYMENT_STATE_EDITTING";
    public static final String APPLYMENT_STATE_AUDITING = "APPLYMENT_STATE_AUDITING";
    public static final String APPLYMENT_STATE_REJECTED = "APPLYMENT_STATE_REJECTED";
    public static final String APPLYMENT_STATE_TO_BE_CONFIRMED = "APPLYMENT_STATE_TO_BE_CONFIRMED";
    public static final String APPLYMENT_STATE_TO_BE_SIGNED = "APPLYMENT_STATE_TO_BE_SIGNED";
    public static final String APPLYMENT_STATE_SIGNING = "APPLYMENT_STATE_SIGNING";
    public static final String APPLYMENT_STATE_FINISHED = "APPLYMENT_STATE_FINISHED";
    public static final String APPLYMENT_STATE_CANCELED = "APPLYMENT_STATE_CANCELED";


    /**
     * 收付通/特约进件日志表进件状态（0：进件中；1：进件审核完成；2：进件异常）
     */
    public static final String IN_THE_INCOMING = "0";
    public static final String THE_INCOMING_REVIEW_IS_COMPLETE = "1";
    public static final String INCOMING_ITEMS_ARE_ABNORMAL = "2";


    /**
     * 个体工商户: 0
     * 企业商户: 1
     * 个人商户：2
     */
    public static final String SOLE_PROPRIETORSHIP = "0";
    public static final String ENTERPRISE = "1";
    public static final String SOHO = "2";

    /**
     * 银行卡类型（0：借记卡-DC，1：信用卡-CC）
     */
    public static final String DC = "0";
    public static final String CC = "1";

    /**
     * 银行卡账号使用类型（0：对公，1：对私）
     */
    public static final String TO_THE_PUBLIC = "0";
    public static final String TO_THE_PRIVATE = "1";


    /**
     * 特殊资质（0：有；1：没有）
     */
    public static final String QUALIFYING = "0";
    public static final String NOT_QUALIFIED = "1";

    /**
     * 是否金融机构
     * 0：是；1：不是
     */
    public static final String FINANCIAL = "0";
    public static final String NOT_FINANCIAL = "1";


    /**
     * BANK_AGENT：银行业, 适用于商业银行、政策性银行、农村合作银行、村镇银行、开发性金融机构等
     * PAYMENT_AGENT：支付机构, 适用于非银行类支付机构
     * INSURANCE：保险业, 适用于保险、保险中介、保险代理、保险经纪等保险类业务
     * TRADE_AND_SETTLE：交易及结算类金融机构, 适用于交易所、登记结算类机构、银行卡清算机构、资金清算中心等
     * OTHER：其他金融机构, 适用于财务公司、信托公司、金融资产管理公司、金融租赁公司、汽车金融公司、贷款公司、货币经纪公司、消费金融公司、证券业、金融控股公司、股票、期货、货币兑换、小额贷款公司、金融资产管理、担保公司、商业保理公司、典当行、融资租赁公司、财经咨询等其他金融业务
     */
    public static final String BANK_AGENT = "银行业";
    public static final String PAYMENT_AGENT = "支付机构";
    public static final String INSURANCE = "保险业";
    public static final String TRADE_AND_SETTLE = "交易及结算类金融机构";
    public static final String OTHER = "其他金融机构";

    /**
     * 经营场景类型
     * 1、请勾选实际售卖商品/提供服务场景（至少一项），以便为你开通需要的支付权限。
     * 2、建议只勾选目前必须的场景，以便尽快通过入驻审核，其他支付权限可在入驻后再根据实际需要发起申请。
     * SALES_SCENES_STORE：线下场所  v
     * SALES_SCENES_MP：公众号
     * SALES_SCENES_MINI_PROGRAM：小程序 v
     * SALES_SCENES_WEB：互联网网站
     * SALES_SCENES_APP：APP
     * SALES_SCENES_WEWORK：企业微信
     */
    public static final List<String> SALES_SCENES_TYPE = Lists.newArrayList("SALES_SCENES_STORE", "SALES_SCENES_MINI_PROGRAM");


    /**
     * LEGAL：经营者/法人
     * SUPER：经办人
     */
    public static final String LEGAL = "0";
    public static final String SUPER = "1";


    /**
     * 超级管理员证件类型：
     * 0：中国大陆居民-身份证
     * 1：其他国家或地区居民-护照
     * 2：中国香港居民-来往内地通行证
     * 3：中国澳门居民-来往内地通行证
     * 4：中国台湾居民-来往大陆通行证
     * 5：外国人居留证
     * 6：港澳居民证
     * 7：台湾居民证
     * IDENTIFICATION_TYPE_IDCARD：中国大陆居民-身份证
     * IDENTIFICATION_TYPE_OVERSEA_PASSPORT：其他国家或地区居民-护照
     * IDENTIFICATION_TYPE_HONGKONG_PASSPORT：中国香港居民-来往内地通行证
     * IDENTIFICATION_TYPE_MACAO_PASSPORT：中国澳门居民-来往内地通行证
     * IDENTIFICATION_TYPE_TAIWAN_PASSPORT：中国台湾居民-来往大陆通行证
     * IDENTIFICATION_TYPE_FOREIGN_RESIDENT：外国人居留证
     * IDENTIFICATION_TYPE_HONGKONG_MACAO_RESIDENT：港澳居民证
     * IDENTIFICATION_TYPE_TAIWAN_RESIDENT：台湾居民证
     */
    public static final String IDENTIFICATION_TYPE_IDCARD = "0";
    public static final String IDENTIFICATION_TYPE_OVERSEA_PASSPORT = "1";
    public static final String IDENTIFICATION_TYPE_HONGKONG_PASSPORT = "2";
    public static final String IDENTIFICATION_TYPE_MACAO_PASSPORT = "3";
    public static final String IDENTIFICATION_TYPE_TAIWAN_PASSPORT = "4";
    public static final String IDENTIFICATION_TYPE_FOREIGN_RESIDENT = "5";
    public static final String IDENTIFICATION_TYPE_HONGKONG_MACAO_RESIDENT = "6";
    public static final String IDENTIFICATION_TYPE_TAIWAN_RESIDENT = "7";

}
